package org.zjt.flating;

import lombok.extern.slf4j.Slf4j;

import java.math.BigDecimal;

/**
 * @author juntao.zhang
 * @version V1.0
 * @Description: java 浮点数
 * @Package org.zjt.flating
 * @date 2018/6/11 22:38
 */
@Slf4j
public class Main {

    public static void main(String[] args) {
        double num = 1- .9;

        log.info(String.valueOf(num));    // 0.09999999999999998

        // right        BigDecimal 用String 才能保证正确性
        BigDecimal bigDecimal = new BigDecimal(1);
        BigDecimal subtract = bigDecimal.subtract(new BigDecimal(".9"));
        log.info(String.valueOf(subtract.doubleValue()));       // 0.1

        // error        BigDecimal 用double来初始化了。所有不能保真正。
        subtract = bigDecimal.subtract(new BigDecimal(.9));
        log.info(String.valueOf(subtract.doubleValue()));       // 0.09999999999999998

        // long、int     表示法
        log.info(String.valueOf((100 - 90.0 )/100));        // 0.1
    }
}
